// NIST-developed software is provided by NIST as a public service. You may use, copy and distribute copies of the software in any medium, provided that you keep intact this entire notice. You may improve, modify and create derivative works of the software or any portion of the software, and you may copy and distribute such modifications or works. Modified works should carry a notice stating that you changed the software and should note the date and nature of any such change. Please explicitly acknowledge the National Institute of Standards and Technology as the source of the software.

// NIST-developed software is expressly provided "AS IS." NIST MAKES NO WARRANTY OF ANY KIND, EXPRESS, IMPLIED, IN FACT OR ARISING BY OPERATION OF LAW, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT AND DATA ACCURACY. NIST NEITHER REPRESENTS NOR WARRANTS THAT THE OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED OR ERROR-FREE, OR THAT ANY DEFECTS WILL BE CORRECTED. NIST DOES NOT WARRANT OR MAKE ANY REPRESENTATIONS REGARDING THE USE OF THE SOFTWARE OR THE RESULTS THEREOF, INCLUDING BUT NOT LIMITED TO THE CORRECTNESS, ACCURACY, RELIABILITY, OR USEFULNESS OF THE SOFTWARE.

// You are solely responsible for determining the appropriateness of using and distributing the software and you assume all risks associated with its use, including but not limited to the risks and costs of program errors, compliance with applicable laws, damage to or loss of data, programs or equipment, and the unavailability or interruption of operation. This software is not intended to be used in any situation where a failure could cause risk of injury or damage to property. The software developed by NIST employees is not subject to copyright protection within the United States.



// ================================================================
//
// Author: tjb3
// Date:   Aug 1, 2013 3:30:25 PM EST
//
// Time-stamp: <Aug 1, 2013 3:30:25 PM tjb3>
//
// Description of FFTW3Library32.java
//
// ================================================================

package gov.nist.isg.mist.lib32.imagetile.fftw;

import org.bridj.BridJ;
import org.bridj.CRuntime;
import org.bridj.Pointer;
import org.bridj.TypedPointer;
import org.bridj.ann.CLong;
import org.bridj.ann.Library;
import org.bridj.ann.Name;
import org.bridj.ann.Ptr;
import org.bridj.ann.Runtime;

/**
 * Wrapper for library <b>FFTW3</b><br> This file was autogenerated by <a
 * href="http://jnaerator.googlecode.com/">JNAerator</a>,<br> a tool written by <a
 * href="http://ochafik.com/">Olivier Chafik</a> that <a href="http://code.google.com/p/jnaerator/wiki/CreditsAndLicense">uses
 * a few opensource projects.</a>.<br> For help, please visit <a href="http://nativelibs4java.googlecode.com/">NativeLibs4Java</a>
 * or <a href="http://bridj.googlecode.com/">BridJ</a> .
 */
@Library("fftwf")
@Runtime(CRuntime.class)
@SuppressWarnings({"rawtypes", "unchecked", "deprecation"})
public class FFTW3Library32 {
  static {
    BridJ.register();
  }

//  /**
//   * enum values<br> <i>native declaration : /usr/local/include/fftw3.h:754</i>
//   */
//  public enum fftw_r2r_kind_do_not_use_me implements IntValuedEnum<fftw_r2r_kind_do_not_use_me> {
//    FFTW_R2HC(0),
//    FFTW_HC2R(1),
//    FFTW_DHT(2),
//    FFTW_REDFT00(3),
//    FFTW_REDFT01(4),
//    FFTW_REDFT10(5),
//    FFTW_REDFT11(6),
//    FFTW_RODFT00(7),
//    FFTW_RODFT01(8),
//    FFTW_RODFT10(9),
//    FFTW_RODFT11(10);
//
//    fftw_r2r_kind_do_not_use_me(long value) {
//      this.value = value;
//    }
//
//    public final long value;
//
//    @Override
//    public long value() {
//      return this.value;
//    }
//
//    @Override
//    public Iterator<fftw_r2r_kind_do_not_use_me> iterator() {
//      return Collections.singleton(this).iterator();
//    }
//
//    public static IntValuedEnum<fftw_r2r_kind_do_not_use_me> fromValue(int value) {
//      return FlagSet.fromValue(value, values());
//    }
//  }

  //
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_NONTHREADED = 1 << 10;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_SLOW = 1 << 18;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_VRECURSE = 1 << 16;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_BUFFERING = 1 << 11;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final double FFTW_NO_TIMELIMIT = (-1.0);
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_INDIRECT_OP = 1 << 12;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_FORWARD = (-1);
  /// <i>native declaration : /usr/local/include/fftw3.h</i>
  public static final int FFTW_MEASURE = (0);
  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_SIMD = 1 << 17;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_RANK_SPLITS = 1 << 14;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_ALLOW_LARGE_GENERIC = 1 << 13;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_BELIEVE_PCOST = 1 << 8;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_FIXED_RADIX_LARGE_N = 1 << 19;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_BACKWARD = (+1);
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_DESTROY_INPUT = 1 << 0;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_UNALIGNED = 1 << 1;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_ESTIMATE_PATIENT = 1 << 7;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_DFT_R2HC = 1 << 9;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_PRESERVE_INPUT = 1 << 4;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_CONSERVE_MEMORY = 1 << 2;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
  public static final int FFTW_EXHAUSTIVE = 1 << 3;
  /// <i>native declaration : /usr/local/include/fftw3.h</i>
  public static final int FFTW_ESTIMATE = 1 << 6;
  /// <i>native declaration : /usr/local/include/fftw3.h</i>
  public static final int FFTW_PATIENT = 1 << 5;
  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_NO_VRANK_SPLITS = 1 << 15;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_WISDOM_ONLY = 1 << 21;
//  /// <i>native declaration : /usr/local/include/fftw3.h</i>
//  public static final int FFTW_ALLOW_PRUNING = 1 << 20;

//  /// <i>native declaration : /usr/local/include/fftw3.h:759</i>
//  /// <i>native declaration : /usr/local/include/fftw3.h:759</i>
//  public static class fftw_iodim_do_not_use_me extends StructObject {
//    /// dimension size
//    @Field(0)
//    public int n() {
//      return this.io.getIntField(this, 0);
//    }
//
//    /// dimension size
//    @Field(0)
//    public fftw_iodim_do_not_use_me n(int n) {
//      this.io.setIntField(this, 0, n);
//      return this;
//    }
//
//    /// input stride
//    @Field(1)
//    public int is() {
//      return this.io.getIntField(this, 1);
//    }
//
//    /// input stride
//    @Field(1)
//    public fftw_iodim_do_not_use_me is(int is) {
//      this.io.setIntField(this, 1, is);
//      return this;
//    }
//
//    /// output stride
//    @Field(2)
//    public int os() {
//      return this.io.getIntField(this, 2);
//    }
//
//    /// output stride
//    @Field(2)
//    public fftw_iodim_do_not_use_me os(int os) {
//      this.io.setIntField(this, 2, os);
//      return this;
//    }
//
//    public fftw_iodim_do_not_use_me() {
//      super();
//    }
//
//    public fftw_iodim_do_not_use_me(Pointer pointer) {
//      super(pointer);
//    }
//  }


//
//  /// <i>native declaration : /usr/local/include/fftw3.h:764</i>
//  /// <i>native declaration : /usr/local/include/fftw3.h:764</i>
//  public static class fftw_iodim64_do_not_use_me extends StructObject {
//    /// dimension size
//    @CLong
//    @Field(0)
//    public long n() {
//      return this.io.getCLongField(this, 0);
//    }
//
//    /// dimension size
//    @CLong
//    @Field(0)
//    public fftw_iodim64_do_not_use_me n(long n) {
//      this.io.setCLongField(this, 0, n);
//      return this;
//    }
//
//    /// input stride
//    @CLong
//    @Field(1)
//    public long is() {
//      return this.io.getCLongField(this, 1);
//    }
//
//    /// input stride
//    @CLong
//    @Field(1)
//    public fftw_iodim64_do_not_use_me is(long is) {
//      this.io.setCLongField(this, 1, is);
//      return this;
//    }
//
//    /// output stride
//    @CLong
//    @Field(2)
//    public long os() {
//      return this.io.getCLongField(this, 2);
//    }
//
//    /// output stride
//    @CLong
//    @Field(2)
//    public fftw_iodim64_do_not_use_me os(long os) {
//      this.io.setCLongField(this, 2, os);
//      return this;
//    }
//
//    public fftw_iodim64_do_not_use_me() {
//      super();
//    }
//
//    public fftw_iodim64_do_not_use_me(Pointer pointer) {
//      super(pointer);
//    }
//  }
//
//  /// <i>native declaration : /usr/local/include/fftw3.h:765</i>
//  /// <i>native declaration : /usr/local/include/fftw3.h:765</i>
//  public static abstract class fftw_write_char_func_do_not_use_me extends Callback<fftw_write_char_func_do_not_use_me> {
//    abstract public void apply(byte c, Pointer<?> voidPtr1);
//  }
//
//
//  /// <i>native declaration : /usr/local/include/fftw3.h:766</i>
//  /// <i>native declaration : /usr/local/include/fftw3.h:766</i>
//  public static abstract class fftw_read_char_func_do_not_use_me extends Callback<fftw_read_char_func_do_not_use_me> {
//    abstract public int apply(Pointer<?> voidPtr1);
//  }
//
//	/**
//	 * Original signature : <code>void fftw_execute(const fftw_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:776</i>
//	 */
//	public static void fftw_execute(FFTW3Library32.fftw_plan p) {
//		fftw_execute(Pointer.getPeer(p));
//	}
//	protected native static void fftw_execute(@Ptr long p);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft(int, const int*, double*, double*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:778</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft(int rank, Pointer<Integer > n, Pointer<Double > in, Pointer<Double > out, int sign, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_1d(int, double*, double*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:780</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_1d(int n, Pointer<Double > in, Pointer<Double > out, int sign, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_1d(int n, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_2d(int, int, double*, double*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:782</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_2d(int n0, int n1, Pointer<Double > in, Pointer<Double > out, int sign, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_2d(int n0, int n1, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_3d(int, int, int, double*, double*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:784</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_3d(int n0, int n1, int n2, Pointer<Double > in, Pointer<Double > out, int sign, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_many_dft(int, const int*, int, double*, const int*, int, int, double*, const int*, int, int, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:786</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_many_dft(int rank, Pointer<Integer > n, int howmany, Pointer<Double > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Double > out, Pointer<Integer > onembed, int ostride, int odist, int sign, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_many_dft(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, sign, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_many_dft(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_dft(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:788</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_dft(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, int sign, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_split_dft(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:790</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_split_dft(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > ri, Pointer<Double > ii, Pointer<Double > ro, Pointer<Double > io, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_split_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_split_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_dft(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:792</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_dft(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, int sign, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_split_dft(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:794</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_split_dft(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > ri, Pointer<Double > ii, Pointer<Double > ro, Pointer<Double > io, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_split_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_split_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>void fftw_execute_dft(const fftw_plan, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:796</i>
//	 */
//	public static void fftw_execute_dft(FFTW3Library32.fftw_plan p, Pointer<Double > in, Pointer<Double > out) {
//		fftw_execute_dft(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftw_execute_dft(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftw_execute_split_dft(const fftw_plan, double*, double*, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:798</i>
//	 */
//	public static void fftw_execute_split_dft(FFTW3Library32.fftw_plan p, Pointer<Double > ri, Pointer<Double > ii, Pointer<Double > ro, Pointer<Double > io) {
//		fftw_execute_split_dft(Pointer.getPeer(p), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io));
//	}
//	protected native static void fftw_execute_split_dft(@Ptr long p, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_many_dft_r2c(int, const int*, int, double*, const int*, int, int, double*, const int*, int, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:800</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_many_dft_r2c(int rank, Pointer<Integer > n, int howmany, Pointer<Double > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Double > out, Pointer<Integer > onembed, int ostride, int odist, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_many_dft_r2c(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_many_dft_r2c(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_r2c(int, const int*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:802</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_r2c(int rank, Pointer<Integer > n, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_r2c(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_r2c(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_r2c_1d(int, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:804</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_r2c_1d(int n, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_r2c_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_r2c_1d(int n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_r2c_2d(int, int, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:806</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_r2c_2d(int n0, int n1, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_r2c_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_r2c_2d(int n0, int n1, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_r2c_3d(int, int, int, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:808</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_r2c_3d(int n0, int n1, int n2, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_r2c_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_r2c_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_many_dft_c2r(int, const int*, int, double*, const int*, int, int, double*, const int*, int, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:810</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_many_dft_c2r(int rank, Pointer<Integer > n, int howmany, Pointer<Double > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Double > out, Pointer<Integer > onembed, int ostride, int odist, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_many_dft_c2r(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_many_dft_c2r(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_c2r(int, const int*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:812</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_c2r(int rank, Pointer<Integer > n, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_c2r(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_c2r(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_c2r_1d(int, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:814</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_c2r_1d(int n, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_c2r_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_c2r_1d(int n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_c2r_2d(int, int, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:816</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_c2r_2d(int n0, int n1, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_c2r_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_c2r_2d(int n0, int n1, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_dft_c2r_3d(int, int, int, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:818</i>
//	 */
//	public static FFTW3Library32.fftw_plan fftw_plan_dft_c2r_3d(int n0, int n1, int n2, Pointer<Double > in, Pointer<Double > out, int flags) {
//		return new FFTW3Library32.fftw_plan(fftw_plan_dft_c2r_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftw_plan_dft_c2r_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_dft_r2c(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:820</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_dft_r2c(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_dft_c2r(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:822</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_dft_c2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_split_dft_r2c(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:824</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_split_dft_r2c(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > ro, Pointer<Double > io, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_split_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_split_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_split_dft_c2r(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:826</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_split_dft_c2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > ri, Pointer<Double > ii, Pointer<Double > out, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_split_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_split_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_dft_r2c(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:828</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_dft_r2c(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_dft_c2r(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:830</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_dft_c2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_split_dft_r2c(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:832</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_split_dft_r2c(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > ro, Pointer<Double > io, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_split_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_split_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_split_dft_c2r(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:834</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_split_dft_c2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > ri, Pointer<Double > ii, Pointer<Double > out, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_split_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_split_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>void fftw_execute_dft_r2c(const fftw_plan, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:836</i>
//	 */
//	public static void fftw_execute_dft_r2c(FFTW3Library32.fftw_plan p, Pointer<Double > in, Pointer<Double > out) {
//		fftw_execute_dft_r2c(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftw_execute_dft_r2c(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftw_execute_dft_c2r(const fftw_plan, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:838</i>
//	 */
//	public static void fftw_execute_dft_c2r(FFTW3Library32.fftw_plan p, Pointer<Double > in, Pointer<Double > out) {
//		fftw_execute_dft_c2r(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftw_execute_dft_c2r(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftw_execute_split_dft_r2c(const fftw_plan, double*, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:840</i>
//	 */
//	public static void fftw_execute_split_dft_r2c(FFTW3Library32.fftw_plan p, Pointer<Double > in, Pointer<Double > ro, Pointer<Double > io) {
//		fftw_execute_split_dft_r2c(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io));
//	}
//	protected native static void fftw_execute_split_dft_r2c(@Ptr long p, @Ptr long in, @Ptr long ro, @Ptr long io);
//	/**
//	 * Original signature : <code>void fftw_execute_split_dft_c2r(const fftw_plan, double*, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:842</i>
//	 */
//	public static void fftw_execute_split_dft_c2r(FFTW3Library32.fftw_plan p, Pointer<Double > ri, Pointer<Double > ii, Pointer<Double > out) {
//		fftw_execute_split_dft_c2r(Pointer.getPeer(p), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out));
//	}
//	protected native static void fftw_execute_split_dft_c2r(@Ptr long p, @Ptr long ri, @Ptr long ii, @Ptr long out);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_many_r2r(int, const int*, int, double*, const int*, int, int, double*, const int*, int, int, const fftw_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:844</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_many_r2r(int rank, Pointer<Integer > n, int howmany, Pointer<Double > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Double > out, Pointer<Integer > onembed, int ostride, int odist, Pointer<IntValuedEnum<FFTW3Library32.fftw_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_many_r2r(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_many_r2r(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_r2r(int, const int*, double*, double*, const fftw_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:846</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_r2r(int rank, Pointer<Integer > n, Pointer<Double > in, Pointer<Double > out, Pointer<IntValuedEnum<FFTW3Library32.fftw_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_r2r(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_r2r(int rank, @Ptr long n, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_r2r_1d(int, double*, double*, fftw_r2r_kind, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:848</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_r2r_1d(int n, Pointer<Double > in, Pointer<Double > out, IntValuedEnum<FFTW3Library32.fftw_r2r_kind > kind, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_r2r_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind.value(), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_r2r_1d(int n, @Ptr long in, @Ptr long out, int kind, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_r2r_2d(int, int, double*, double*, fftw_r2r_kind, fftw_r2r_kind, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:850</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_r2r_2d(int n0, int n1, Pointer<Double > in, Pointer<Double > out, IntValuedEnum<FFTW3Library32.fftw_r2r_kind > kind0, IntValuedEnum<FFTW3Library32.fftw_r2r_kind > kind1, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_r2r_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind0.value(), (int)kind1.value(), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_r2r_2d(int n0, int n1, @Ptr long in, @Ptr long out, int kind0, int kind1, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_r2r_3d(int, int, int, double*, double*, fftw_r2r_kind, fftw_r2r_kind, fftw_r2r_kind, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:852</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_r2r_3d(int n0, int n1, int n2, Pointer<Double > in, Pointer<Double > out, IntValuedEnum<FFTW3Library32.fftw_r2r_kind > kind0, IntValuedEnum<FFTW3Library32.fftw_r2r_kind > kind1, IntValuedEnum<FFTW3Library32.fftw_r2r_kind > kind2, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_r2r_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind0.value(), (int)kind1.value(), (int)kind2.value(), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_r2r_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int kind0, int kind1, int kind2, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru_r2r(int, const fftw_iodim*, int, const fftw_iodim*, double*, double*, const fftw_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:854</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru_r2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, Pointer<IntValuedEnum<FFTW3Library32.fftw_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru_r2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru_r2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>fftw_plan fftw_plan_guru64_r2r(int, const fftw_iodim64*, int, const fftw_iodim64*, double*, double*, const fftw_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:856</i>
//	 */
////	public static FFTW3Library32.fftw_plan fftw_plan_guru64_r2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Double > in, Pointer<Double > out, Pointer<IntValuedEnum<FFTW3Library32.fftw_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftw_plan(fftw_plan_guru64_r2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftw_plan_guru64_r2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>void fftw_execute_r2r(const fftw_plan, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:858</i>
//	 */
//	public static void fftw_execute_r2r(FFTW3Library32.fftw_plan p, Pointer<Double > in, Pointer<Double > out) {
//		fftw_execute_r2r(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftw_execute_r2r(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftw_destroy_plan(fftw_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:860</i>
//	 */
//	public static void fftw_destroy_plan(FFTW3Library32.fftw_plan p) {
//		fftw_destroy_plan(Pointer.getPeer(p));
//	}
//	protected native static void fftw_destroy_plan(@Ptr long p);
//	/**
//	 * Original signature : <code>void fftw_forget_wisdom()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:862</i>
//	 */
//	native public static void fftw_forget_wisdom();
//	/**
//	 * Original signature : <code>void fftw_cleanup()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:864</i>
//	 */
//	native public static void fftw_cleanup();
//	/**
//	 * Original signature : <code>void fftw_set_timelimit(double)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:866</i>
//	 */
//	native public static void fftw_set_timelimit(double t);
//	/**
//	 * Original signature : <code>void fftw_plan_with_nthreads(int)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:868</i>
//	 */
////	native public static void fftw_plan_with_nthreads(int nthreads);
//	/**
//	 * Original signature : <code>int fftw_init_threads()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:870</i>
//	 */
//	//native public static int fftw_init_threads();
//	/**
//	 * Original signature : <code>void fftw_cleanup_threads()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:872</i>
//	 */
//	//native public static void fftw_cleanup_threads();
//	/**
//	 * Original signature : <code>int fftw_export_wisdom_to_filename(const char*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:874</i>
//	 */
//	public static int fftw_export_wisdom_to_filename(Pointer<Byte > filename) {
//		return fftw_export_wisdom_to_filename(Pointer.getPeer(filename));
//	}
//	protected native static int fftw_export_wisdom_to_filename(@Ptr long filename);
//	/**
//	 * Original signature : <code>void fftw_export_wisdom_to_file(FILE*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:876</i>
//	 */
//	public static void fftw_export_wisdom_to_file(Pointer output_file) {
//		fftw_export_wisdom_to_file(Pointer.getPeer(output_file));
//	}
//	protected native static void fftw_export_wisdom_to_file(@Ptr long output_file);
//	/**
//	 * Original signature : <code>char* fftw_export_wisdom_to_string()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:878</i>
//	 */
//	public static Pointer<Byte > fftw_export_wisdom_to_string() {
//		return Pointer.pointerToAddress(fftw_export_wisdom_to_string$2(), Byte.class);
//	}
//	@Ptr
//	@Name("fftw_export_wisdom_to_string")
//	protected native static long fftw_export_wisdom_to_string$2();
//	/**
//	 * Original signature : <code>void fftw_export_wisdom(fftw_write_char_func, void*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:880</i>
//	 */
//	public static void fftw_export_wisdom(Pointer<FFTW3Library32.fftw_write_char_func_do_not_use_me > write_char, Pointer<? > data) {
//		fftw_export_wisdom(Pointer.getPeer(write_char), Pointer.getPeer(data));
//	}
//	protected native static void fftw_export_wisdom(@Ptr long write_char, @Ptr long data);
//	/**
//	 * Original signature : <code>int fftw_import_system_wisdom()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:882</i>
//	 */
//	native public static int fftw_import_system_wisdom();
//	/**
//	 * Original signature : <code>int fftw_import_wisdom_from_filename(const char*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:884</i>
//	 */
//	public static int fftw_import_wisdom_from_filename(Pointer<Byte > filename) {
//		return fftw_import_wisdom_from_filename(Pointer.getPeer(filename));
//	}
//	protected native static int fftw_import_wisdom_from_filename(@Ptr long filename);
//	/**
//	 * Original signature : <code>int fftw_import_wisdom_from_file(FILE*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:886</i>
//	 */
//	public static int fftw_import_wisdom_from_file(Pointer input_file) {
//		return fftw_import_wisdom_from_file(Pointer.getPeer(input_file));
//	}
//	protected native static int fftw_import_wisdom_from_file(@Ptr long input_file);
//	/**
//	 * Original signature : <code>int fftw_import_wisdom_from_string(const char*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:888</i>
//	 */
//	public static int fftw_import_wisdom_from_string(Pointer<Byte > input_string) {
//		return fftw_import_wisdom_from_string(Pointer.getPeer(input_string));
//	}
//	protected native static int fftw_import_wisdom_from_string(@Ptr long input_string);
//	/**
//	 * Original signature : <code>int fftw_import_wisdom(fftw_read_char_func, void*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:890</i>
//	 */
//	public static int fftw_import_wisdom(Pointer<FFTW3Library32.fftw_read_char_func_do_not_use_me > read_char, Pointer<? > data) {
//		return fftw_import_wisdom(Pointer.getPeer(read_char), Pointer.getPeer(data));
//	}
//	protected native static int fftw_import_wisdom(@Ptr long read_char, @Ptr long data);
//	/**
//	 * Original signature : <code>void fftw_fprint_plan(const fftw_plan, FILE*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:892</i>
//	 */
//	public static void fftw_fprint_plan(FFTW3Library32.fftw_plan p, Pointer output_file) {
//		fftw_fprint_plan(Pointer.getPeer(p), Pointer.getPeer(output_file));
//	}
//	protected native static void fftw_fprint_plan(@Ptr long p, @Ptr long output_file);
//	/**
//	 * Original signature : <code>void fftw_print_plan(const fftw_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:894</i>
//	 */
//	public static void fftw_print_plan(FFTW3Library32.fftw_plan p) {
//		fftw_print_plan(Pointer.getPeer(p));
//	}
//	protected native static void fftw_print_plan(@Ptr long p);
//	/**
//	 * Original signature : <code>void* fftw_malloc(size_t)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:896</i>
//	 */
//	public static Pointer<? > fftw_malloc(@CLong long n) {
//		return Pointer.pointerToAddress(fftw_malloc$2(n));
//	}
//	@Ptr
//	@Name("fftw_malloc")
//	protected native static long fftw_malloc$2(@CLong long n);
//	/**
//	 * Original signature : <code>double* fftw_alloc_real(size_t)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:898</i>
//	 */
//	public static Pointer<Double > fftw_alloc_real(@CLong long n) {
//		return Pointer.pointerToAddress(fftw_alloc_real$2(n), Double.class);
//	}
//	@Ptr
//	@Name("fftw_alloc_real")
//	protected native static long fftw_alloc_real$2(@CLong long n);
//	/**
//	 * Original signature : <code>double* fftw_alloc_complex(size_t)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:900</i>
//	 */
//	public static Pointer<Double > fftw_alloc_complex(@CLong long n) {
//		return Pointer.pointerToAddress(fftw_alloc_complex$2(n), Double.class);
//	}
//	@Ptr
//	@Name("fftw_alloc_complex")
//	protected native static long fftw_alloc_complex$2(@CLong long n);
//	/**
//	 * Original signature : <code>void fftw_free(void*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:902</i>
//	 */
//	public static void fftw_free(Pointer<? > p) {
//		fftw_free(Pointer.getPeer(p));
//	}
//	protected native static void fftw_free(@Ptr long p);
//	/**
//	 * Original signature : <code>void fftw_flops(const fftw_plan, double*, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:904</i>
//	 */
//	public static void fftw_flops(FFTW3Library32.fftw_plan p, Pointer<Double > add, Pointer<Double > mul, Pointer<Double > fmas) {
//		fftw_flops(Pointer.getPeer(p), Pointer.getPeer(add), Pointer.getPeer(mul), Pointer.getPeer(fmas));
//	}
//	protected native static void fftw_flops(@Ptr long p, @Ptr long add, @Ptr long mul, @Ptr long fmas);
//	/**
//	 * Original signature : <code>double fftw_estimate_cost(const fftw_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:906</i>
//	 */
//	public static double fftw_estimate_cost(FFTW3Library32.fftw_plan p) {
//		return fftw_estimate_cost(Pointer.getPeer(p));
//	}
//	protected native static double fftw_estimate_cost(@Ptr long p);
//	/**
//	 * Original signature : <code>double fftw_cost(const fftw_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:908</i>
//	 */
//	public static double fftw_cost(FFTW3Library32.fftw_plan p) {
//		return fftw_cost(Pointer.getPeer(p));
//	}
//	protected native static double fftw_cost(@Ptr long p);
//
//  /**
//   * Original signature : <code>void fftwf_execute(const fftwf_plan)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:921</i>
//   */
//  public static void fftwf_execute(FFTW3Library32.fftwf_plan p) {
//    fftwf_execute(Pointer.getPeer(p));
//  }
//
//  protected native static void fftwf_execute(@Ptr long p);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft(int, const int*, float*, float*, int,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:923</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft(int rank, Pointer<Integer> n, Pointer<Float> in, Pointer<Float> out, int sign, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_1d(int, float*, float*, int,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:925</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_1d(int n, Pointer<Float> in, Pointer<Float> out, int sign, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_1d(int n, @Ptr long in, @Ptr long out, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_2d(int, int, float*, float*, int,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:927</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_2d(int n0, int n1, Pointer<Float> in, Pointer<Float> out, int sign, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_2d(int n0, int n1, @Ptr long in, @Ptr long out, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_3d(int, int, int, float*, float*, int,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:929</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_3d(int n0, int n1, int n2, Pointer<Float> in, Pointer<Float> out, int sign, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_many_dft(int, const int*, int, float*, const
//   * int*, int, int, float*, const int*, int, int, int, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:931</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_many_dft(int rank, Pointer<Integer> n, int howmany, Pointer<Float> in, Pointer<Integer> inembed, int istride, int idist, Pointer<Float> out, Pointer<Integer> onembed, int ostride, int odist, int sign, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_many_dft(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, sign, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_many_dft(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_dft(int, const fftwf_iodim*, int, const
//   * fftwf_iodim*, float*, float*, int, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:933</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_dft(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, int sign, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_split_dft(int, const fftwf_iodim*, int,
//   * const fftwf_iodim*, float*, float*, float*, float*, unsigned)</code><br> <i>native declaration
//   * : /usr/local/include/fftw3.h:935</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_split_dft(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > ri, Pointer<Float > ii, Pointer<Float > ro, Pointer<Float > io, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_split_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_split_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_dft(int, const fftwf_iodim64*, int,
//   * const fftwf_iodim64*, float*, float*, int, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:937</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_dft(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, int sign, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int sign, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_split_dft(int, const fftwf_iodim64*,
//   * int, const fftwf_iodim64*, float*, float*, float*, float*, unsigned)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:939</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_split_dft(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > ri, Pointer<Float > ii, Pointer<Float > ro, Pointer<Float > io, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_split_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_split_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io, int flags);
//
//  /**
//   * Original signature : <code>void fftwf_execute_dft(const fftwf_plan, float*, float*)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:941</i>
//   */
//  public static void fftwf_execute_dft(FFTW3Library32.fftwf_plan p, Pointer<Float> in, Pointer<Float> out) {
//    fftwf_execute_dft(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//  }
//
//  protected native static void fftwf_execute_dft(@Ptr long p, @Ptr long in, @Ptr long out);
//
//  /**
//   * Original signature : <code>void fftwf_execute_split_dft(const fftwf_plan, float*, float*,
//   * float*, float*)</code><br> <i>native declaration : /usr/local/include/fftw3.h:943</i>
//   */
//  public static void fftwf_execute_split_dft(FFTW3Library32.fftwf_plan p, Pointer<Float> ri, Pointer<Float> ii, Pointer<Float> ro, Pointer<Float> io) {
//    fftwf_execute_split_dft(Pointer.getPeer(p), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io));
//  }
//
//  protected native static void fftwf_execute_split_dft(@Ptr long p, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_many_dft_r2c(int, const int*, int, float*,
//   * const int*, int, int, float*, const int*, int, int, unsigned)</code><br> <i>native declaration
//   * : /usr/local/include/fftw3.h:945</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_many_dft_r2c(int rank, Pointer<Integer> n, int howmany, Pointer<Float> in, Pointer<Integer> inembed, int istride, int idist, Pointer<Float> out, Pointer<Integer> onembed, int ostride, int odist, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_many_dft_r2c(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_many_dft_r2c(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_r2c(int, const int*, float*, float*,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:947</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_r2c(int rank, Pointer<Integer> n, Pointer<Float> in, Pointer<Float> out, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_r2c(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_r2c(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_r2c_1d(int, float*, float*,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:949</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_r2c_1d(int n, Pointer<Float> in, Pointer<Float> out, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_r2c_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_r2c_1d(int n, @Ptr long in, @Ptr long out, int flags);

  /**
   * Original signature : <code>fftwf_plan fftwf_plan_dft_r2c_2d(int, int, float*, float*,
   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:951</i>
   */
  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_r2c_2d(int n0, int n1, Pointer<Float> in, Pointer<Float> out, int flags) {
    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_r2c_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), flags));
  }

  @Ptr
  protected native static long fftwf_plan_dft_r2c_2d(int n0, int n1, @Ptr long in, @Ptr long out, int flags);

//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_r2c_3d(int, int, int, float*, float*,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:953</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_r2c_3d(int n0, int n1, int n2, Pointer<Float> in, Pointer<Float> out, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_r2c_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_r2c_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_many_dft_c2r(int, const int*, int, float*,
//   * const int*, int, int, float*, const int*, int, int, unsigned)</code><br> <i>native declaration
//   * : /usr/local/include/fftw3.h:955</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_many_dft_c2r(int rank, Pointer<Integer> n, int howmany, Pointer<Float> in, Pointer<Integer> inembed, int istride, int idist, Pointer<Float> out, Pointer<Integer> onembed, int ostride, int odist, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_many_dft_c2r(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_many_dft_c2r(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_c2r(int, const int*, float*, float*,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:957</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_c2r(int rank, Pointer<Integer> n, Pointer<Float> in, Pointer<Float> out, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_c2r(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_c2r(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_c2r_1d(int, float*, float*,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:959</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_c2r_1d(int n, Pointer<Float> in, Pointer<Float> out, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_c2r_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_c2r_1d(int n, @Ptr long in, @Ptr long out, int flags);

  /**
   * Original signature : <code>fftwf_plan fftwf_plan_dft_c2r_2d(int, int, float*, float*,
   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:961</i>
   */
  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_c2r_2d(int n0, int n1, Pointer<Float> in, Pointer<Float> out, int flags) {
    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_c2r_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), flags));
  }

  @Ptr
  protected native static long fftwf_plan_dft_c2r_2d(int n0, int n1, @Ptr long in, @Ptr long out, int flags);

//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_dft_c2r_3d(int, int, int, float*, float*,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:963</i>
//   */
//  public static FFTW3Library32.fftwf_plan fftwf_plan_dft_c2r_3d(int n0, int n1, int n2, Pointer<Float> in, Pointer<Float> out, int flags) {
//    return new FFTW3Library32.fftwf_plan(fftwf_plan_dft_c2r_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//  }
//
//  @Ptr
//  protected native static long fftwf_plan_dft_c2r_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_dft_r2c(int, const fftwf_iodim*, int,
//   * const fftwf_iodim*, float*, float*, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:965</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_dft_r2c(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_dft_c2r(int, const fftwf_iodim*, int,
//   * const fftwf_iodim*, float*, float*, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:967</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_dft_c2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_split_dft_r2c(int, const fftwf_iodim*,
//   * int, const fftwf_iodim*, float*, float*, float*, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:969</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_split_dft_r2c(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > ro, Pointer<Float > io, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_split_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_split_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long ro, @Ptr long io, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_split_dft_c2r(int, const fftwf_iodim*,
//   * int, const fftwf_iodim*, float*, float*, float*, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:971</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_split_dft_c2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > ri, Pointer<Float > ii, Pointer<Float > out, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_split_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_split_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_dft_r2c(int, const fftwf_iodim64*, int,
//   * const fftwf_iodim64*, float*, float*, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:973</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_dft_r2c(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_dft_c2r(int, const fftwf_iodim64*, int,
//   * const fftwf_iodim64*, float*, float*, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:975</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_dft_c2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_split_dft_r2c(int, const
//   * fftwf_iodim64*, int, const fftwf_iodim64*, float*, float*, float*, unsigned)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:977</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_split_dft_r2c(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > ro, Pointer<Float > io, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_split_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_split_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long ro, @Ptr long io, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_split_dft_c2r(int, const
//   * fftwf_iodim64*, int, const fftwf_iodim64*, float*, float*, float*, unsigned)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:979</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_split_dft_c2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > ri, Pointer<Float > ii, Pointer<Float > out, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_split_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_split_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long out, int flags);

  /**
   * Original signature : <code>void fftwf_execute_dft_r2c(const fftwf_plan, float*,
   * float*)</code><br> <i>native declaration : /usr/local/include/fftw3.h:981</i>
   */
  public static void fftwf_execute_dft_r2c(FFTW3Library32.fftwf_plan p, Pointer<Float> in, Pointer<Float> out) {
    fftwf_execute_dft_r2c(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
  }

  protected native static void fftwf_execute_dft_r2c(@Ptr long p, @Ptr long in, @Ptr long out);

  /**
   * Original signature : <code>void fftwf_execute_dft_c2r(const fftwf_plan, float*,
   * float*)</code><br> <i>native declaration : /usr/local/include/fftw3.h:983</i>
   */
  public static void fftwf_execute_dft_c2r(FFTW3Library32.fftwf_plan p, Pointer<Float> in, Pointer<Float> out) {
    fftwf_execute_dft_c2r(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
  }

  protected native static void fftwf_execute_dft_c2r(@Ptr long p, @Ptr long in, @Ptr long out);

//  /**
//   * Original signature : <code>void fftwf_execute_split_dft_r2c(const fftwf_plan, float*, float*,
//   * float*)</code><br> <i>native declaration : /usr/local/include/fftw3.h:985</i>
//   */
//  public static void fftwf_execute_split_dft_r2c(FFTW3Library32.fftwf_plan p, Pointer<Float> in, Pointer<Float> ro, Pointer<Float> io) {
//    fftwf_execute_split_dft_r2c(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io));
//  }
//
//  protected native static void fftwf_execute_split_dft_r2c(@Ptr long p, @Ptr long in, @Ptr long ro, @Ptr long io);
//
//  /**
//   * Original signature : <code>void fftwf_execute_split_dft_c2r(const fftwf_plan, float*, float*,
//   * float*)</code><br> <i>native declaration : /usr/local/include/fftw3.h:987</i>
//   */
//  public static void fftwf_execute_split_dft_c2r(FFTW3Library32.fftwf_plan p, Pointer<Float> ri, Pointer<Float> ii, Pointer<Float> out) {
//    fftwf_execute_split_dft_c2r(Pointer.getPeer(p), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out));
//  }
//
//  protected native static void fftwf_execute_split_dft_c2r(@Ptr long p, @Ptr long ri, @Ptr long ii, @Ptr long out);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_many_r2r(int, const int*, int, float*, const
//   * int*, int, int, float*, const int*, int, int, const fftwf_r2r_kind*, unsigned)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:989</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_many_r2r(int rank, Pointer<Integer > n, int howmany, Pointer<Float > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Float > out, Pointer<Integer > onembed, int ostride, int odist, Pointer<IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > > kind, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_many_r2r(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, Pointer.getPeer(kind), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_many_r2r(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, @Ptr long kind, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_r2r(int, const int*, float*, float*, const
//   * fftwf_r2r_kind*, unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:991</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_r2r(int rank, Pointer<Integer > n, Pointer<Float > in, Pointer<Float > out, Pointer<IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > > kind, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_r2r(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_r2r(int rank, @Ptr long n, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_r2r_1d(int, float*, float*, fftwf_r2r_kind,
//   * unsigned)</code><br> <i>native declaration : /usr/local/include/fftw3.h:993</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_r2r_1d(int n, Pointer<Float > in, Pointer<Float > out, IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > kind, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_r2r_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind.value(), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_r2r_1d(int n, @Ptr long in, @Ptr long out, int kind, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_r2r_2d(int, int, float*, float*,
//   * fftwf_r2r_kind, fftwf_r2r_kind, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:995</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_r2r_2d(int n0, int n1, Pointer<Float > in, Pointer<Float > out, IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > kind0, IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > kind1, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_r2r_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind0.value(), (int)kind1.value(), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_r2r_2d(int n0, int n1, @Ptr long in, @Ptr long out, int kind0, int kind1, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_r2r_3d(int, int, int, float*, float*,
//   * fftwf_r2r_kind, fftwf_r2r_kind, fftwf_r2r_kind, unsigned)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:997</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_r2r_3d(int n0, int n1, int n2, Pointer<Float > in, Pointer<Float > out, IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > kind0, IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > kind1, IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > kind2, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_r2r_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind0.value(), (int)kind1.value(), (int)kind2.value(), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_r2r_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int kind0, int kind1, int kind2, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru_r2r(int, const fftwf_iodim*, int, const
//   * fftwf_iodim*, float*, float*, const fftwf_r2r_kind*, unsigned)</code><br> <i>native declaration
//   * : /usr/local/include/fftw3.h:999</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru_r2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, Pointer<IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > > kind, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru_r2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru_r2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//
//  /**
//   * Original signature : <code>fftwf_plan fftwf_plan_guru64_r2r(int, const fftwf_iodim64*, int,
//   * const fftwf_iodim64*, float*, float*, const fftwf_r2r_kind*, unsigned)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1001</i>
//   */
//	public static FFTW3Library32.fftwf_plan fftwf_plan_guru64_r2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Float > in, Pointer<Float > out, Pointer<IntValuedEnum<FFTW3Library32.fftwf_r2r_kind > > kind, int flags) {
//		return new FFTW3Library32.fftwf_plan(fftwf_plan_guru64_r2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
//	}
//  @Ptr
//  protected native static long fftwf_plan_guru64_r2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//
//  /**
//   * Original signature : <code>void fftwf_execute_r2r(const fftwf_plan, float*, float*)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:1003</i>
//   */
//  public static void fftwf_execute_r2r(FFTW3Library32.fftwf_plan p, Pointer<Float> in, Pointer<Float> out) {
//    fftwf_execute_r2r(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//  }
//
//  protected native static void fftwf_execute_r2r(@Ptr long p, @Ptr long in, @Ptr long out);

  /**
   * Original signature : <code>void fftwf_destroy_plan(fftwf_plan)</code><br> <i>native declaration
   * : /usr/local/include/fftw3.h:1005</i>
   */
  public static void fftwf_destroy_plan(FFTW3Library32.fftwf_plan p) {
    fftwf_destroy_plan(Pointer.getPeer(p));
  }

  protected native static void fftwf_destroy_plan(@Ptr long p);

//  /**
//   * Original signature : <code>void fftwf_forget_wisdom()</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:1007</i>
//   */
//  native public static void fftwf_forget_wisdom();

  /**
   * Original signature : <code>void fftwf_cleanup()</code><br> <i>native declaration :
   * /usr/local/include/fftw3.h:1009</i>
   */
  native public static void fftwf_cleanup();

//  /**
//   * Original signature : <code>void fftwf_set_timelimit(double)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:1011</i>
//   */
//  native public static void fftwf_set_timelimit(double t);
//
//  /**
//   * Original signature : <code>void fftwf_plan_with_nthreads(int)</code><br> <i>native declaration
//   * : /usr/local/include/fftw3.h:1013</i>
//   */
//  native public static void fftwf_plan_with_nthreads(int nthreads);
//
//  /**
//   * Original signature : <code>int fftwf_init_threads()</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:1015</i>
//   */
//  native public static int fftwf_init_threads();
//
//  /**
//   * Original signature : <code>void fftwf_cleanup_threads()</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:1017</i>
//   */
//  native public static void fftwf_cleanup_threads();

  /**
   * Original signature : <code>int fftwf_export_wisdom_to_filename(const char*)</code><br>
   * <i>native declaration : /usr/local/include/fftw3.h:1019</i>
   */
  public static int fftwf_export_wisdom_to_filename(Pointer<Byte> filename) {
    return fftwf_export_wisdom_to_filename(Pointer.getPeer(filename));
  }

  protected native static int fftwf_export_wisdom_to_filename(@Ptr long filename);

//  /**
//   * Original signature : <code>void fftwf_export_wisdom_to_file(FILE*)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1021</i>
//   */
//  public static void fftwf_export_wisdom_to_file(Pointer output_file) {
//    fftwf_export_wisdom_to_file(Pointer.getPeer(output_file));
//  }
//
//  protected native static void fftwf_export_wisdom_to_file(@Ptr long output_file);
//
//  /**
//   * Original signature : <code>char* fftwf_export_wisdom_to_string()</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1023</i>
//   */
//  public static Pointer<Byte> fftwf_export_wisdom_to_string() {
//    return Pointer.pointerToAddress(fftwf_export_wisdom_to_string$2(), Byte.class);
//  }
//
//  @Ptr
//  @Name("fftwf_export_wisdom_to_string")
//  protected native static long fftwf_export_wisdom_to_string$2();
//
//  /**
//   * Original signature : <code>void fftwf_export_wisdom(fftwf_write_char_func, void*)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:1025</i>
//   */
//  public static void fftwf_export_wisdom(Pointer<FFTW3Library32.fftw_write_char_func_do_not_use_me> write_char, Pointer<?> data) {
//    fftwf_export_wisdom(Pointer.getPeer(write_char), Pointer.getPeer(data));
//  }
//
//  protected native static void fftwf_export_wisdom(@Ptr long write_char, @Ptr long data);
//
//  /**
//   * Original signature : <code>int fftwf_import_system_wisdom()</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:1027</i>
//   */
//  native public static int fftwf_import_system_wisdom();

  /**
   * Original signature : <code>int fftwf_import_wisdom_from_filename(const char*)</code><br>
   * <i>native declaration : /usr/local/include/fftw3.h:1029</i>
   */
  public static int fftwf_import_wisdom_from_filename(Pointer<Byte> filename) {
    return fftwf_import_wisdom_from_filename(Pointer.getPeer(filename));
  }

  protected native static int fftwf_import_wisdom_from_filename(@Ptr long filename);

//  /**
//   * Original signature : <code>int fftwf_import_wisdom_from_file(FILE*)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1031</i>
//   */
//  public static int fftwf_import_wisdom_from_file(Pointer input_file) {
//    return fftwf_import_wisdom_from_file(Pointer.getPeer(input_file));
//  }
//
//  protected native static int fftwf_import_wisdom_from_file(@Ptr long input_file);
//
//  /**
//   * Original signature : <code>int fftwf_import_wisdom_from_string(const char*)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:1033</i>
//   */
//  public static int fftwf_import_wisdom_from_string(Pointer<Byte> input_string) {
//    return fftwf_import_wisdom_from_string(Pointer.getPeer(input_string));
//  }
//
//  protected native static int fftwf_import_wisdom_from_string(@Ptr long input_string);
//
//  /**
//   * Original signature : <code>int fftwf_import_wisdom(fftwf_read_char_func, void*)</code><br>
//   * <i>native declaration : /usr/local/include/fftw3.h:1035</i>
//   */
//  public static int fftwf_import_wisdom(Pointer<FFTW3Library32.fftw_read_char_func_do_not_use_me> read_char, Pointer<?> data) {
//    return fftwf_import_wisdom(Pointer.getPeer(read_char), Pointer.getPeer(data));
//  }
//
//  protected native static int fftwf_import_wisdom(@Ptr long read_char, @Ptr long data);
//
//  /**
//   * Original signature : <code>void fftwf_fprint_plan(const fftwf_plan, FILE*)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1037</i>
//   */
//  public static void fftwf_fprint_plan(FFTW3Library32.fftwf_plan p, Pointer output_file) {
//    fftwf_fprint_plan(Pointer.getPeer(p), Pointer.getPeer(output_file));
//  }
//
//  protected native static void fftwf_fprint_plan(@Ptr long p, @Ptr long output_file);
//
//  /**
//   * Original signature : <code>void fftwf_print_plan(const fftwf_plan)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1039</i>
//   */
//  public static void fftwf_print_plan(FFTW3Library32.fftwf_plan p) {
//    fftwf_print_plan(Pointer.getPeer(p));
//  }
//
//  protected native static void fftwf_print_plan(@Ptr long p);
//
//  /**
//   * Original signature : <code>void* fftwf_malloc(size_t)</code><br> <i>native declaration :
//   * /usr/local/include/fftw3.h:1041</i>
//   */
//  public static Pointer<?> fftwf_malloc(@CLong long n) {
//    return Pointer.pointerToAddress(fftwf_malloc$2(n));
//  }
//
//  @Ptr
//  @Name("fftwf_malloc")
//  protected native static long fftwf_malloc$2(@CLong long n);

  /**
   * Original signature : <code>float* fftwf_alloc_real(size_t)</code><br> <i>native declaration :
   * /usr/local/include/fftw3.h:1043</i>
   */
  public static Pointer<Float> fftwf_alloc_real(@CLong long n) {
    return Pointer.pointerToAddress(fftwf_alloc_real$2(n), Float.class);
  }

  @Ptr
  @Name("fftwf_alloc_real")
  protected native static long fftwf_alloc_real$2(@CLong long n);

  /**
   * Original signature : <code>float* fftwf_alloc_complex(size_t)</code><br> <i>native declaration
   * : /usr/local/include/fftw3.h:1045</i>
   */
  public static Pointer<Float> fftwf_alloc_complex(@CLong long n) {
    return Pointer.pointerToAddress(fftwf_alloc_complex$2(n), Float.class);
  }

  @Ptr
  @Name("fftwf_alloc_complex")
  protected native static long fftwf_alloc_complex$2(@CLong long n);

  /**
   * Original signature : <code>void fftwf_free(void*)</code><br> <i>native declaration :
   * /usr/local/include/fftw3.h:1047</i>
   */
  public static void fftwf_free(Pointer<?> p) {
    fftwf_free(Pointer.getPeer(p));
  }

  protected native static void fftwf_free(@Ptr long p);

//  /**
//   * Original signature : <code>void fftwf_flops(const fftwf_plan, double*, double*,
//   * double*)</code><br> <i>native declaration : /usr/local/include/fftw3.h:1049</i>
//   */
//  public static void fftwf_flops(FFTW3Library32.fftwf_plan p, Pointer<Double> add, Pointer<Double> mul, Pointer<Double> fmas) {
//    fftwf_flops(Pointer.getPeer(p), Pointer.getPeer(add), Pointer.getPeer(mul), Pointer.getPeer(fmas));
//  }
//
//  protected native static void fftwf_flops(@Ptr long p, @Ptr long add, @Ptr long mul, @Ptr long fmas);
//
//  /**
//   * Original signature : <code>double fftwf_estimate_cost(const fftwf_plan)</code><br> <i>native
//   * declaration : /usr/local/include/fftw3.h:1051</i>
//   */
//  public static double fftwf_estimate_cost(FFTW3Library32.fftwf_plan p) {
//    return fftwf_estimate_cost(Pointer.getPeer(p));
//  }
//
//  protected native static double fftwf_estimate_cost(@Ptr long p);
//
//  /**
//   * Original signature : <code>double fftwf_cost(const fftwf_plan)</code><br> <i>native declaration
//   * : /usr/local/include/fftw3.h:1053</i>
//   */
//  public static double fftwf_cost(FFTW3Library32.fftwf_plan p) {
//    return fftwf_cost(Pointer.getPeer(p));
//  }
//
//  protected native static double fftwf_cost(@Ptr long p);

  ///**
// * Original signature : <code>void fftwl_execute(const fftwl_plan)</code><br>
// * <i>native declaration : /usr/local/include/fftw3.h:1066</i>
// */
//	public static void fftwl_execute(FFTW3Library32.fftwl_plan p) {
//		fftwl_execute(Pointer.getPeer(p));
//	}
//	protected native static void fftwl_execute(@Ptr long p);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft(int, const int*, fftwl_complex*, fftwl_complex*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1068</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft(int rank, Pointer<Integer > n, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out, int sign, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_1d(int, fftwl_complex*, fftwl_complex*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1070</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_1d(int n, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out, int sign, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_1d(int n, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_2d(int, int, fftwl_complex*, fftwl_complex*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1072</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_2d(int n0, int n1, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out, int sign, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_2d(int n0, int n1, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_3d(int, int, int, fftwl_complex*, fftwl_complex*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1074</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_3d(int n0, int n1, int n2, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out, int sign, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_many_dft(int, const int*, int, fftwl_complex*, const int*, int, int, fftwl_complex*, const int*, int, int, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1076</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_many_dft(int rank, Pointer<Integer > n, int howmany, Pointer<Pointer<Pointer<Double > > > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Pointer<Pointer<Double > > > out, Pointer<Integer > onembed, int ostride, int odist, int sign, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_many_dft(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, sign, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_many_dft(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_dft(int, const fftwl_iodim*, int, const fftwl_iodim*, fftwl_complex*, fftwl_complex*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1078</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_dft(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out, int sign, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_split_dft(int, const fftwl_iodim*, int, const fftwl_iodim*, long double*, long double*, long double*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1080</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_split_dft(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > ri, Pointer<Pointer<Double > > ii, Pointer<Pointer<Double > > ro, Pointer<Pointer<Double > > io, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_split_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_split_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_dft(int, const fftwl_iodim64*, int, const fftwl_iodim64*, fftwl_complex*, fftwl_complex*, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1082</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_dft(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out, int sign, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), sign, flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int sign, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_split_dft(int, const fftwl_iodim64*, int, const fftwl_iodim64*, long double*, long double*, long double*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1084</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_split_dft(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > ri, Pointer<Pointer<Double > > ii, Pointer<Pointer<Double > > ro, Pointer<Pointer<Double > > io, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_split_dft(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_split_dft(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>void fftwl_execute_dft(const fftwl_plan, fftwl_complex*, fftwl_complex*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1086</i>
//	 */
//	public static void fftwl_execute_dft(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Pointer<Double > > > out) {
//		fftwl_execute_dft(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftwl_execute_dft(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftwl_execute_split_dft(const fftwl_plan, long double*, long double*, long double*, long double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1088</i>
//	 */
//	public static void fftwl_execute_split_dft(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Double > > ri, Pointer<Pointer<Double > > ii, Pointer<Pointer<Double > > ro, Pointer<Pointer<Double > > io) {
//		fftwl_execute_split_dft(Pointer.getPeer(p), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(ro), Pointer.getPeer(io));
//	}
//	protected native static void fftwl_execute_split_dft(@Ptr long p, @Ptr long ri, @Ptr long ii, @Ptr long ro, @Ptr long io);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_many_dft_r2c(int, const int*, int, long double*, const int*, int, int, fftwl_complex*, const int*, int, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1090</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_many_dft_r2c(int rank, Pointer<Integer > n, int howmany, Pointer<Pointer<Double > > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Pointer<Pointer<Double > > > out, Pointer<Integer > onembed, int ostride, int odist, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_many_dft_r2c(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_many_dft_r2c(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_r2c(int, const int*, long double*, fftwl_complex*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1092</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_r2c(int rank, Pointer<Integer > n, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_r2c(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_r2c(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_r2c_1d(int, long double*, fftwl_complex*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1094</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_r2c_1d(int n, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_r2c_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_r2c_1d(int n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_r2c_2d(int, int, long double*, fftwl_complex*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1096</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_r2c_2d(int n0, int n1, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_r2c_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_r2c_2d(int n0, int n1, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_r2c_3d(int, int, int, long double*, fftwl_complex*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1098</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_r2c_3d(int n0, int n1, int n2, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_r2c_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_r2c_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_many_dft_c2r(int, const int*, int, fftwl_complex*, const int*, int, int, long double*, const int*, int, int, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1100</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_many_dft_c2r(int rank, Pointer<Integer > n, int howmany, Pointer<Pointer<Pointer<Double > > > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Pointer<Double > > out, Pointer<Integer > onembed, int ostride, int odist, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_many_dft_c2r(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_many_dft_c2r(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_c2r(int, const int*, fftwl_complex*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1102</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_c2r(int rank, Pointer<Integer > n, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_c2r(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_c2r(int rank, @Ptr long n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_c2r_1d(int, fftwl_complex*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1104</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_c2r_1d(int n, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_c2r_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_c2r_1d(int n, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_c2r_2d(int, int, fftwl_complex*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1106</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_c2r_2d(int n0, int n1, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_c2r_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_c2r_2d(int n0, int n1, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_dft_c2r_3d(int, int, int, fftwl_complex*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1108</i>
//	 */
//	public static FFTW3Library32.fftwl_plan fftwl_plan_dft_c2r_3d(int n0, int n1, int n2, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out, int flags) {
//		return new FFTW3Library32.fftwl_plan(fftwl_plan_dft_c2r_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), flags));
//	}
//	@Ptr
//	protected native static long fftwl_plan_dft_c2r_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_dft_r2c(int, const fftwl_iodim*, int, const fftwl_iodim*, long double*, fftwl_complex*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1110</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_dft_r2c(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_dft_c2r(int, const fftwl_iodim*, int, const fftwl_iodim*, fftwl_complex*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1112</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_dft_c2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_split_dft_r2c(int, const fftwl_iodim*, int, const fftwl_iodim*, long double*, long double*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1114</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_split_dft_r2c(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > ro, Pointer<Pointer<Double > > io, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_split_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_split_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_split_dft_c2r(int, const fftwl_iodim*, int, const fftwl_iodim*, long double*, long double*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1116</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_split_dft_c2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > ri, Pointer<Pointer<Double > > ii, Pointer<Pointer<Double > > out, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_split_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_split_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_dft_r2c(int, const fftwl_iodim64*, int, const fftwl_iodim64*, long double*, fftwl_complex*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1118</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_dft_r2c(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_dft_c2r(int, const fftwl_iodim64*, int, const fftwl_iodim64*, fftwl_complex*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1120</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_dft_c2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_split_dft_r2c(int, const fftwl_iodim64*, int, const fftwl_iodim64*, long double*, long double*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1122</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_split_dft_r2c(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > ro, Pointer<Pointer<Double > > io, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_split_dft_r2c(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_split_dft_r2c(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long ro, @Ptr long io, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_split_dft_c2r(int, const fftwl_iodim64*, int, const fftwl_iodim64*, long double*, long double*, long double*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1124</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_split_dft_c2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > ri, Pointer<Pointer<Double > > ii, Pointer<Pointer<Double > > out, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_split_dft_c2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_split_dft_c2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long ri, @Ptr long ii, @Ptr long out, int flags);
//	/**
//	 * Original signature : <code>void fftwl_execute_dft_r2c(const fftwl_plan, long double*, fftwl_complex*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1126</i>
//	 */
//	public static void fftwl_execute_dft_r2c(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Double > > in, Pointer<Pointer<Pointer<Double > > > out) {
//		fftwl_execute_dft_r2c(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftwl_execute_dft_r2c(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftwl_execute_dft_c2r(const fftwl_plan, fftwl_complex*, long double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1128</i>
//	 */
//	public static void fftwl_execute_dft_c2r(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Pointer<Double > > > in, Pointer<Pointer<Double > > out) {
//		fftwl_execute_dft_c2r(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftwl_execute_dft_c2r(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftwl_execute_split_dft_r2c(const fftwl_plan, long double*, long double*, long double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1130</i>
//	 */
//	public static void fftwl_execute_split_dft_r2c(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > ro, Pointer<Pointer<Double > > io) {
//		fftwl_execute_split_dft_r2c(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(ro), Pointer.getPeer(io));
//	}
//	protected native static void fftwl_execute_split_dft_r2c(@Ptr long p, @Ptr long in, @Ptr long ro, @Ptr long io);
//	/**
//	 * Original signature : <code>void fftwl_execute_split_dft_c2r(const fftwl_plan, long double*, long double*, long double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1132</i>
//	 */
//	public static void fftwl_execute_split_dft_c2r(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Double > > ri, Pointer<Pointer<Double > > ii, Pointer<Pointer<Double > > out) {
//		fftwl_execute_split_dft_c2r(Pointer.getPeer(p), Pointer.getPeer(ri), Pointer.getPeer(ii), Pointer.getPeer(out));
//	}
//	protected native static void fftwl_execute_split_dft_c2r(@Ptr long p, @Ptr long ri, @Ptr long ii, @Ptr long out);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_many_r2r(int, const int*, int, long double*, const int*, int, int, long double*, const int*, int, int, const fftwl_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1134</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_many_r2r(int rank, Pointer<Integer > n, int howmany, Pointer<Pointer<Double > > in, Pointer<Integer > inembed, int istride, int idist, Pointer<Pointer<Double > > out, Pointer<Integer > onembed, int ostride, int odist, Pointer<IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_many_r2r(rank, Pointer.getPeer(n), howmany, Pointer.getPeer(in), Pointer.getPeer(inembed), istride, idist, Pointer.getPeer(out), Pointer.getPeer(onembed), ostride, odist, Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_many_r2r(int rank, @Ptr long n, int howmany, @Ptr long in, @Ptr long inembed, int istride, int idist, @Ptr long out, @Ptr long onembed, int ostride, int odist, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_r2r(int, const int*, long double*, long double*, const fftwl_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1136</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_r2r(int rank, Pointer<Integer > n, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out, Pointer<IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_r2r(rank, Pointer.getPeer(n), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_r2r(int rank, @Ptr long n, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_r2r_1d(int, long double*, long double*, fftwl_r2r_kind, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1138</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_r2r_1d(int n, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out, IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > kind, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_r2r_1d(n, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind.value(), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_r2r_1d(int n, @Ptr long in, @Ptr long out, int kind, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_r2r_2d(int, int, long double*, long double*, fftwl_r2r_kind, fftwl_r2r_kind, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1140</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_r2r_2d(int n0, int n1, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out, IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > kind0, IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > kind1, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_r2r_2d(n0, n1, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind0.value(), (int)kind1.value(), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_r2r_2d(int n0, int n1, @Ptr long in, @Ptr long out, int kind0, int kind1, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_r2r_3d(int, int, int, long double*, long double*, fftwl_r2r_kind, fftwl_r2r_kind, fftwl_r2r_kind, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1142</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_r2r_3d(int n0, int n1, int n2, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out, IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > kind0, IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > kind1, IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > kind2, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_r2r_3d(n0, n1, n2, Pointer.getPeer(in), Pointer.getPeer(out), (int)kind0.value(), (int)kind1.value(), (int)kind2.value(), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_r2r_3d(int n0, int n1, int n2, @Ptr long in, @Ptr long out, int kind0, int kind1, int kind2, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru_r2r(int, const fftwl_iodim*, int, const fftwl_iodim*, long double*, long double*, const fftwl_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1144</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru_r2r(int rank, Pointer<fftw3.fftw_iodim_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out, Pointer<IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru_r2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru_r2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>fftwl_plan fftwl_plan_guru64_r2r(int, const fftwl_iodim64*, int, const fftwl_iodim64*, long double*, long double*, const fftwl_r2r_kind*, unsigned)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1146</i>
//	 */
////	public static FFTW3Library32.fftwl_plan fftwl_plan_guru64_r2r(int rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > dims, int howmany_rank, Pointer<fftw3.fftw_iodim64_do_not_use_me > howmany_dims, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out, Pointer<IntValuedEnum<FFTW3Library32.fftwl_r2r_kind > > kind, int flags) {
////		return new FFTW3Library32.fftwl_plan(fftwl_plan_guru64_r2r(rank, Pointer.getPeer(dims), howmany_rank, Pointer.getPeer(howmany_dims), Pointer.getPeer(in), Pointer.getPeer(out), Pointer.getPeer(kind), flags));
////	}
//	@Ptr
//	protected native static long fftwl_plan_guru64_r2r(int rank, @Ptr long dims, int howmany_rank, @Ptr long howmany_dims, @Ptr long in, @Ptr long out, @Ptr long kind, int flags);
//	/**
//	 * Original signature : <code>void fftwl_execute_r2r(const fftwl_plan, long double*, long double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1148</i>
//	 */
//	public static void fftwl_execute_r2r(FFTW3Library32.fftwl_plan p, Pointer<Pointer<Double > > in, Pointer<Pointer<Double > > out) {
//		fftwl_execute_r2r(Pointer.getPeer(p), Pointer.getPeer(in), Pointer.getPeer(out));
//	}
//	protected native static void fftwl_execute_r2r(@Ptr long p, @Ptr long in, @Ptr long out);
//	/**
//	 * Original signature : <code>void fftwl_destroy_plan(fftwl_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1150</i>
//	 */
//	public static void fftwl_destroy_plan(FFTW3Library32.fftwl_plan p) {
//		fftwl_destroy_plan(Pointer.getPeer(p));
//	}
//	protected native static void fftwl_destroy_plan(@Ptr long p);
//	/**
//	 * Original signature : <code>void fftwl_forget_wisdom()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1152</i>
//	 */
//	native public static void fftwl_forget_wisdom();
//	/**
//	 * Original signature : <code>void fftwl_cleanup()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1154</i>
//	 */
//	native public static void fftwl_cleanup();
//	/**
//	 * Original signature : <code>void fftwl_set_timelimit(double)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1156</i>
//	 */
//	native public static void fftwl_set_timelimit(double t);
//	/**
//	 * Original signature : <code>void fftwl_plan_with_nthreads(int)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1158</i>
//	 */
//	native public static void fftwl_plan_with_nthreads(int nthreads);
//	/**
//	 * Original signature : <code>int fftwl_init_threads()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1160</i>
//	 */
//	native public static int fftwl_init_threads();
//	/**
//	 * Original signature : <code>void fftwl_cleanup_threads()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1162</i>
//	 */
//	native public static void fftwl_cleanup_threads();
//	/**
//	 * Original signature : <code>int fftwl_export_wisdom_to_filename(const char*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1164</i>
//	 */
//	public static int fftwl_export_wisdom_to_filename(Pointer<Byte > filename) {
//		return fftwl_export_wisdom_to_filename(Pointer.getPeer(filename));
//	}
//	protected native static int fftwl_export_wisdom_to_filename(@Ptr long filename);
//	/**
//	 * Original signature : <code>void fftwl_export_wisdom_to_file(FILE*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1166</i>
//	 */
//	public static void fftwl_export_wisdom_to_file(Pointer output_file) {
//		fftwl_export_wisdom_to_file(Pointer.getPeer(output_file));
//	}
//	protected native static void fftwl_export_wisdom_to_file(@Ptr long output_file);
//	/**
//	 * Original signature : <code>char* fftwl_export_wisdom_to_string()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1168</i>
//	 */
//	public static Pointer<Byte > fftwl_export_wisdom_to_string() {
//		return Pointer.pointerToAddress(fftwl_export_wisdom_to_string$2(), Byte.class);
//	}
//	@Ptr
//	@Name("fftwl_export_wisdom_to_string")
//	protected native static long fftwl_export_wisdom_to_string$2();
//	/**
//	 * Original signature : <code>void fftwl_export_wisdom(fftwl_write_char_func, void*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1170</i>
//	 */
//	public static void fftwl_export_wisdom(Pointer<FFTW3Library32.fftw_write_char_func_do_not_use_me > write_char, Pointer<? > data) {
//		fftwl_export_wisdom(Pointer.getPeer(write_char), Pointer.getPeer(data));
//	}
//	protected native static void fftwl_export_wisdom(@Ptr long write_char, @Ptr long data);
//	/**
//	 * Original signature : <code>int fftwl_import_system_wisdom()</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1172</i>
//	 */
//	native public static int fftwl_import_system_wisdom();
//	/**
//	 * Original signature : <code>int fftwl_import_wisdom_from_filename(const char*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1174</i>
//	 */
//	public static int fftwl_import_wisdom_from_filename(Pointer<Byte > filename) {
//		return fftwl_import_wisdom_from_filename(Pointer.getPeer(filename));
//	}
//	protected native static int fftwl_import_wisdom_from_filename(@Ptr long filename);
//	/**
//	 * Original signature : <code>int fftwl_import_wisdom_from_file(FILE*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1176</i>
//	 */
//	public static int fftwl_import_wisdom_from_file(Pointer input_file) {
//		return fftwl_import_wisdom_from_file(Pointer.getPeer(input_file));
//	}
//	protected native static int fftwl_import_wisdom_from_file(@Ptr long input_file);
//	/**
//	 * Original signature : <code>int fftwl_import_wisdom_from_string(const char*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1178</i>
//	 */
//	public static int fftwl_import_wisdom_from_string(Pointer<Byte > input_string) {
//		return fftwl_import_wisdom_from_string(Pointer.getPeer(input_string));
//	}
//	protected native static int fftwl_import_wisdom_from_string(@Ptr long input_string);
//	/**
//	 * Original signature : <code>int fftwl_import_wisdom(fftwl_read_char_func, void*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1180</i>
//	 */
//	public static int fftwl_import_wisdom(Pointer<FFTW3Library32.fftw_read_char_func_do_not_use_me > read_char, Pointer<? > data) {
//		return fftwl_import_wisdom(Pointer.getPeer(read_char), Pointer.getPeer(data));
//	}
//	protected native static int fftwl_import_wisdom(@Ptr long read_char, @Ptr long data);
//	/**
//	 * Original signature : <code>void fftwl_fprint_plan(const fftwl_plan, FILE*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1182</i>
//	 */
//	public static void fftwl_fprint_plan(FFTW3Library32.fftwl_plan p, Pointer output_file) {
//		fftwl_fprint_plan(Pointer.getPeer(p), Pointer.getPeer(output_file));
//	}
//	protected native static void fftwl_fprint_plan(@Ptr long p, @Ptr long output_file);
//	/**
//	 * Original signature : <code>void fftwl_print_plan(const fftwl_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1184</i>
//	 */
//	public static void fftwl_print_plan(FFTW3Library32.fftwl_plan p) {
//		fftwl_print_plan(Pointer.getPeer(p));
//	}
//	protected native static void fftwl_print_plan(@Ptr long p);
//	/**
//	 * Original signature : <code>void* fftwl_malloc(size_t)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1186</i>
//	 */
//	public static Pointer<? > fftwl_malloc(@CLong long n) {
//		return Pointer.pointerToAddress(fftwl_malloc$2(n));
//	}
//	@Ptr
//	@Name("fftwl_malloc")
//	protected native static long fftwl_malloc$2(@CLong long n);
//	/**
//	 * Original signature : <code>long double* fftwl_alloc_real(size_t)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1188</i>
//	 */
//	public static Pointer<Pointer<Double > > fftwl_alloc_real(@CLong long n) {
//		return Pointer.pointerToAddress(fftwl_alloc_real$2(n), DefaultParameterizedType.paramType(Pointer.class, Double.class));
//	}
//	@Ptr
//	@Name("fftwl_alloc_real")
//	protected native static long fftwl_alloc_real$2(@CLong long n);
//	/**
//	 * Original signature : <code>fftwl_complex* fftwl_alloc_complex(size_t)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1190</i>
//	 */
//	public static Pointer<Pointer<Pointer<Double > > > fftwl_alloc_complex(@CLong long n) {
//		return Pointer.pointerToAddress(fftwl_alloc_complex$2(n), DefaultParameterizedType.paramType(Pointer.class, DefaultParameterizedType.paramType(Pointer.class, Double.class)));
//	}
//	@Ptr
//	@Name("fftwl_alloc_complex")
//	protected native static long fftwl_alloc_complex$2(@CLong long n);
//	/**
//	 * Original signature : <code>void fftwl_free(void*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1192</i>
//	 */
//	public static void fftwl_free(Pointer<? > p) {
//		fftwl_free(Pointer.getPeer(p));
//	}
//	protected native static void fftwl_free(@Ptr long p);
//	/**
//	 * Original signature : <code>void fftwl_flops(const fftwl_plan, double*, double*, double*)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1194</i>
//	 */
//	public static void fftwl_flops(FFTW3Library32.fftwl_plan p, Pointer<Double > add, Pointer<Double > mul, Pointer<Double > fmas) {
//		fftwl_flops(Pointer.getPeer(p), Pointer.getPeer(add), Pointer.getPeer(mul), Pointer.getPeer(fmas));
//	}
//	protected native static void fftwl_flops(@Ptr long p, @Ptr long add, @Ptr long mul, @Ptr long fmas);
//	/**
//	 * Original signature : <code>double fftwl_estimate_cost(const fftwl_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1196</i>
//	 */
//	public static double fftwl_estimate_cost(FFTW3Library32.fftwl_plan p) {
//		return fftwl_estimate_cost(Pointer.getPeer(p));
//	}
//	protected native static double fftwl_estimate_cost(@Ptr long p);
//	/**
//	 * Original signature : <code>double fftwl_cost(const fftwl_plan)</code><br>
//	 * <i>native declaration : /usr/local/include/fftw3.h:1198</i>
//	 */
//	public static double fftwl_cost(FFTW3Library32.fftwl_plan p) {
//		return fftwl_cost(Pointer.getPeer(p));
//	}
//	protected native static double fftwl_cost(@Ptr long p);
  /// C type : extern const char[]
//  public Pointer<Byte> fftw_version() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftw_version").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftw_version(Pointer<Byte> fftw_version) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftw_version").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftw_version);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftw_cc() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftw_cc").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftw_cc(Pointer<Byte> fftw_cc) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftw_cc").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftw_cc);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftw_codelet_optim() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftw_codelet_optim").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftw_codelet_optim(Pointer<Byte> fftw_codelet_optim) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftw_codelet_optim").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftw_codelet_optim);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftwf_version() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwf_version").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftwf_version(Pointer<Byte> fftwf_version) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwf_version").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftwf_version);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftwf_cc() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwf_cc").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftwf_cc(Pointer<Byte> fftwf_cc) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwf_cc").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftwf_cc);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftwf_codelet_optim() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwf_codelet_optim").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftwf_codelet_optim(Pointer<Byte> fftwf_codelet_optim) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwf_codelet_optim").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftwf_codelet_optim);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftwl_version() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwl_version").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftwl_version(Pointer<Byte> fftwl_version) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwl_version").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftwl_version);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftwl_cc() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwl_cc").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftwl_cc(Pointer<Byte> fftwl_cc) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwl_cc").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftwl_cc);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public Pointer<Byte> fftwl_codelet_optim() {
//    try {
//      return (Pointer<Byte>) BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwl_codelet_optim").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).get();
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }
//
//  /// C type : extern const char[]
//  public FFTW3Library32 fftwl_codelet_optim(Pointer<Byte> fftwl_codelet_optim) {
//    try {
//      {
//        BridJ.getNativeLibrary("FFTW3").getSymbolPointer("fftwl_codelet_optim").as(DefaultParameterizedType.paramType(Pointer.class, Byte.class)).set(fftwl_codelet_optim);
//        return this;
//      }
//    } catch (Throwable $ex$) {
//      throw new RuntimeException($ex$);
//    }
//  }

  public static class fftwf_plan extends TypedPointer {
    public fftwf_plan(long address) {
      super(address);
    }

    public fftwf_plan(Pointer address) {
      super(address);
    }
  }

//  public static class fftw_plan extends TypedPointer {
//    public fftw_plan(long address) {
//      super(address);
//    }
//
//    public fftw_plan(Pointer address) {
//      super(address);
//    }
//  }
//
//  public static class fftwl_plan extends TypedPointer {
//    public fftwl_plan(long address) {
//      super(address);
//    }
//
//    public fftwl_plan(Pointer address) {
//      super(address);
//    }
//  }
//
//  /// Undefined type
//  /// Undefined type
//  public static interface fftwl_plan_s {
//
//  }
//
//  /// Undefined type
//  /// Undefined type
//  public static interface fftw_plan_s {
//
//  }
//
//  /// Undefined type
//  /// Undefined type
//  public static interface fftwf_plan_s {
//
//  }

}
